Storing bios in persistent system memory

ABSTRACT

When booting a personal computer, it needs to find instructions immediately to tell it what to run to start up the personal computer. These it finds within the so-called basic input/output system (BIOS) program. Usually the BIOS program is stored in a separate location, for example a ROM. It is usually shadowed into system memory (SM) to speed up its operation. The copying of the BIOS program to system memory (SM), amongst others, causes the boot process to be a relatively slow process. In the present invention, the system memory (SM) comprises a persistent system memory (PSM) and the BIOS program is stored in the persistent system memory (PSM). Furthermore, selected information used by the BIOS program is stored in persistent system memory (PSM) as well. As a result, the speed of booting the personal computer is significantly increased.

TECHNICAL FIELD

The invention relates to a personal computer comprising a system memoryand a basic input/output system program.

The invention further relates to a method for booting said personalcomputer.

BACKGROUND ART

In general, a personal computer is equipped with a system memory.Usually, the programs that are executed or the files that are accessedby the personal computer are copied into the system memory. Whenstarting up, i.e. booting, a personal computer, it needs to findinstructions immediately to tell the personal computer what to run tostart up. These it finds within the so-called basic input/output system(BIOS) program. To boot up the personal computer is one of the mostimportant functions that the BIOS plays. The boot process executed whenthe personal computer is turned on is usually referred to as a coldboot, whereas the boot process executed using {Ctrl}+{Alt}+{Delete} orsimilar is referred to as a warm boot.

EP1028371 describes a personal computer, comprising a BIOS read-onlymemory (ROM) comprising a flash memory storing a BIOS program. Thepersonal computer further comprises a central processing unit, a systemmemory and a local bus. The central processing unit has to access theBIOS program via the system bus.

It is a disadvantage of the prior art personal computer that accessingthe BIOS program via the system bus or copying the BIOS program to thesystem memory for execution are relatively slow processes, resulting ina relatively long time period required for booting the personalcomputer.

DISCLOSURE OF INVENTION

An object of the invention is to provide a personal computer with animproved booting process.

This object is achieved with a personal computer of the kind set forth,characterized in that the system memory comprises a persistent systemmemory and that the basic input/output system program is stored in thepersistent system memory. When booting the personal computer accordingto the invention, the BIOS program can be directly executed from thepersistent system memory. There is no need to access a separate memorystoring the BIOS program, or to copy the BIOS program to the systemmemory. As a result, the booting process is significantly accelerated.Furthermore, no separate memory is required for storing the BIOSprogram. The present invention can be used in combination with anyoperating system.

An embodiment of the personal computer according to the invention ischaracterized in that non-volatile information required during executionof the basic input/output system program is stored in the persistentsystem memory. Execution of the BIOS program may involve steps ofcopying data, e.g. the BIOS program from a video controller, to thesystem memory. In case the personal computer has not changed since thelast cold boot, e.g. no new video controller has been installed, thedata has not changed since then as well. By storing this type ofnon-volatile information in the persistent system memory, this data neednot to be copied to the system memory during each cold boot. As aresult, the speed of the booting process is further increased.

An embodiment of the personal computer according to the invention ischaracterized in that the persistent system memory comprises a magneticrandom access memory. An advantage of this embodiment is that magneticrandom access memory is a persistent memory that is capable of operatingat a high speed, which is favorable for reducing the time periodrequired for booting the personal computer.

According to the invention a method for booting said personal computer,is characterized in that the basic input/output system program isexecuted from the persistent system memory. As a result, a fast bootingprocess is obtained, decreasing the time period required for booting thepersonal computer.

An embodiment of said method for booting a personal computer, ischaracterized in that the basic input/output system program uses thenon-volatile information during its execution. An advantage of thisembodiment is that it further increases the speed of the bootingprocess, by using the non-volatile information stored in the persistentsystem memory instead of copying this information from various sourcesto the system memory.

BRIEF DESCRIPTION OF THE DRAWINGS

The FIGURE shows a schematic diagram of an embodiment of a personalcomputer according to the invention.

DESCRIPTION OF EMBODIMENTS

Referring to the FIGURE, a schematic block diagram illustrates apersonal computer, comprising a central processing unit CPU, a hard diskdrive HDD, a system memory SM, a system bus SB, a video controller VC, adisplay device DD, a keyboard controller KC and a keyboard KB. Thesystem memory SM comprises a persistent system memory PSM. The systembus SB is coupled to the central processing unit CPU via coupling 1, tothe hard disk drive HDD via coupling 3, to the video controller VC viacoupling 5, and to the keyboard controller via coupling 7. The centralprocessing unit CPU is coupled to the system memory SM via coupling 9.The video controller VC is coupled to the display device DD via coupling11. The keyboard controller KC is coupled to the keyboard KB viacoupling 13. The keyboard controller KC, the central processing unitCPU, the hard disk drive HDD and the video controller VC are coupled viathe system bus SB.

In other embodiments, the personal computer may comprise differentdevices, including a floppy disk drive, a printer, a mouse, a modem anda CD-ROM player, for example.

The BIOS program is stored in the persistent system memory PSM, and thisprogram determines what the personal computer can do without accessingprograms from the hard disk drive HDD. One of the most importantfunctions that the BIOS program plays is to boot up the personalcomputer, using the BIOS boot program. When the personal computer isturned on it needs to find instructions immediately to tell the personalcomputer what to run in order to start up and these instructions itfinds within the BIOS program. After the personal computer is turned on,the central processing unit CPU is pre-programmed to look at the placein the persistent system memory PSM, via coupling 9, to look for thestart of the BIOS boot program. Subsequently the BIOS boot program canbe executed by the central processing unit CPU. In case the BIOS programchanges, for example due to a new update of the program, the new versionof the BIOS program is stored in the persistent system memory PSM. TheBIOS program is executed directly from the persistent system memory PSM,which increases the speed of operation. Furthermore, no separate memoryis necessary for storing the BIOS program, e.g. a ROM or a flash memory.

Preferably, the persistent system memory PSM comprises a magnetic randomaccess memory (MRAM). MRAM allows a fast memory access, allowing thecentral processing unit CPU to retrieve the instructions from thepersistent system memory PSM at a high speed, resulting in an increasein the performance of the personal computer during the boot process.

In an advantageous embodiment, non-volatile information that is requiredduring execution of the BIOS program is stored in the persistent systemmemory PSM as well. This non-volatile information may consist of thevideo controller's VC built in BIOS program, built in BIOS programs ofany other devices of the personal computer, the boot deviceidentification, a copy of the system set-up parameters, information onthe initialization of the boot device, i.e. master boot record or volumeboot sector, and the interrupt handlers. If the set-up of the personalcomputer did not change since the last cold boot, the non-volatileinformation stored in the persistent system memory PSM is used by theBIOS program during the boot process. The central processing unit CPUretrieves this information by accessing the persistent system memory PSMvia coupling 9. As a result, the BIOS program does not need to copy thisinformation from its various sources to the system memory SM, allowing afaster boot process.

A method for booting a personal computer according to the invention, andhaving a hard disk drive HDD as boot device, comprises the followingsteps:

-   -   Internal power supply turns on and initializes.    -   Central processing unit CPU accesses the persistent system        memory PSM, via coupling 9, and starts executing the BIOS        program.    -   The system set-up parameters of the personal computer, usually        present in a complementary metal oxide semiconductor (CMOS)        memory, are read by the BIOS program and compared to the version        of the system set-up parameters stored in the persistent system        memory PSM. In case all these parameters are identical, it is        assumed that the set-up of the personal computer has not changed        since the last boot and a “set-up identical” (SI) flag is set by        setting a dedicated bit value to one. In case not all parameters        are identical, the SI flag is not set, i.e. the dedicated bit        value is set to zero. In different embodiments a dedicated flag        is used to indicate if the system set-up parameters as usually        stored in a CMOS memory have changed. If this is the case, the        system set-up parameters are read by the BIOS program and        compared to the version of the system set-up parameters stored        in the persistent system memory PSM. If the system set-up        parameters have not changed, the SI flag can be set directly. If        the SI flag is set, the boot device is identified from the value        stored in the persistent system memory PSM, and initialization        of the boot device is started in parallel to other actions to be        performed in the booting process. For initialization of the boot        device, the master boot record is used as stored in the        persistent system memory PSM. In case the SI flag is not set, a        new copy of the system parameters is made into the persistent        system memory PSM.    -   The interrupt handlers, which abstract the hardware components        from the operating system, are loaded into the system memory SM.        If the SI flag is set, these interrupt handlers are retrieved        from the persistent system memory PSM. If the SI flag is not        set, a new copy of the interrupt handlers is made in the        persistent system memory PSM.    -   The power-on self test (POST) routine is run.    -   The presence of a video controller VC is checked and the video        controller's BIOS program is executed, in order to initialize        the video controller. If the SI flag is set, the video        controller's BIOS program stored in the persistent system memory        PSM is used. If the SI flag is not set, a new copy of the video        controller's BIOS program is made in the persistent system        memory PSM, and subsequently executed.    -   The presence of other devices of the personal computer, having a        BIOS program, is checked and their corresponding BIOS programs        are executed. If the SI flag is set, the corresponding BIOS        programs stored in the persistent system memory PSM are used. In        case the SI flag is not set, new copies of the corresponding        BIOS programs are made in the persistent system memory PSM, and        subsequently executed.    -   Memory count-up test is performed. In different embodiments,        this test may not be performed.    -   Tests are performed to determine what sort of hardware is        present in the personal computer, for example the presence of a        keyboard and a mouse is checked. The BIOS program will also        search for and label logical devices, such as serial        communication ports and printer ports.    -   Initialization of the boot device. In case the SI flag is set,        this initialization has already started. If the SI flag has not        been set, the BIOS program identifies the hard disk drive HDD as        the boot device by searching for a drive to boot from. A new        copy of the boot device identification is made in the persistent        system memory PSM. The master boot record stored in the        persistent system memory PSM is used for initialization of the        boot device. As soon as the boot device becomes responsive, the        version of the master boot record stored on the hard disk drive        HDD is compared to the version stored in the persistent system        memory PSM. In case these versions are not identical, the        version stored on the hard disk drive HDD is copied to the        persistent system memory PSM. Subsequently, the initialization        of the boot device is started again, using the master boot        record stored in the persistent system memory PSM. Afer        initialization of the boot device the operating system stored on        the hard disk drive HDD is loaded into the system memory SM.

The master boot record stores information on how to boot the hard diskdrive HDD and initiates loading the operating system from the hard diskdrive HDD into the system memory SM. The master boot record comprisesthe following structures: master partition table, which is a small tablecontaining the descriptions of the partitions that are contained on thehard disk drive HDD, and master boot code, which is a small initial bootprogram executed by the BIOS program in order to start the boot processfor the operating system. This program eventually transfers control tothe boot program stored on an arbitrary location on the hard disk driveHDD, and which is used for actually loading the operating system intothe system memory SM.

In different embodiments, a floppy disk drive acts as the boot deviceand in that case the volume boot sector is stored in the persistentsystem memory PSM and used for initialization of the boot device,instead of the master boot record.

The above mentioned method for booting a personal computer allows to runthe BIOS program from the persistent system memory, increasing the speedof execution and decreasing the time period required for booting thepersonal computer. Furthermore, in case the set-up of the personalcomputer has not changed, information required by the BIOS program canbe directly retrieved from the persistent system memory PSM. Since theset-up of a personal computer usually remains identical during a longerperiod of time, the speed of the boot process will be further increasedin most cases. This method can be generally applied, i.e. is notrestricted to one type of operating system, and can also be used inmulti-boot scenarios, i.e. for a personal computer that uses more thanone type of operating system.

The steps described in the method for booting a personal computeraccording to the invention, are the steps that typically occur in a bootsequence. In other embodiments, different steps may occur, depending onwhich devices are present in the personal computer, the BIOS programitself and the manufacturer of the hardware.

It should be noted that the above-mentioned embodiments illustraterather than limit the invention, and that those skilled in the art willbe able to design many alternative embodiments without departing fromthe scope of the appended claims. In the claims, any reference signsplaced between parentheses shall not be construed as limiting the claim.The word “comprising” does not exclude the presence of elements or stepsother than those listed in a claim. The word “a” or “an” preceding anelement does not exclude the presence of a plurality of such elements.In the device claim enumerating several means, several of these meanscan be embodied by one and the same item of hardware. The mere fact thatcertain measures are recited in mutually different dependent claims doesnot indicate that a combination of these measures cannot be used toadvantage.

1. A personal computer comprising: a system memory, a basic input/outputsystem program, characterized in that the system memory comprises apersistent system memory and that the basic input/output system programis'stored in the persistent system memory.
 2. A personal computeraccording to claim 1, characterized in that non-volatile informationrequired during execution of the basic input/output system program isstored in the persistent system memory.
 3. A personal computer accordingto claim 1, characterized in that the persistent system memory comprisesa magnetic random access memory.
 4. A method for booting a personalcomputer according to claim 1, characterized in that the basicinput/output system program is executed from the persistent systemmemory.
 5. A method for booting a personal computer according to claim2, characterized in that the basic input/output system program uses thenon-volatile information during its execution.